home *** CD-ROM | disk | FTP | other *** search
- property spriteNum, mySprite, myMember, myStandardMember, myRollovermember, myMouseDownMember, myDisabledMember, myMouseDownSound, myMouseUpSound, myActiveFlag, myXRayFlag, myMessageType, myMessage, theMouseWasUp, myMouseDown, myRollover, mySubscribersList
-
- on getBehaviorDescription me
- return "ÉvÉbÉVÉÖÉ{É^Éì" & RETURN & RETURN & "DZÇÃÉrÉwÉCÉrÉAÇÕÉ}ÉEÉXÇÃê›íËÅiëºÇÃèÍèäÅAÉçÅ[ÉãÉIÅ[ÉoÅ[ÅAÉ}ÉEÉXÉ_ÉEÉìÅAÉ}ÉEÉXÉAÉbÉvÅjDžǵÇýǙǡǃÉXÉvÉâÉCÉgÇÃÉÅÉìÉoÅ[ǝê›íËǵNjÇÝÅB " & RETURN & RETURN & "DZÇÍÇ…ÇÊÇËÅAï ÇÃÉXÉvÉâÉCÉgǼèàóùǝénǁÇýÇËÅAìØÇðÉXÉvÉâÉCÉgÇ…ïtâ¡ÇŽÇÍǃǢÇÈï ÇÃÉrÉwÉCÉrÉAÇ…ÅAÉrÉWÉÖÉAÉãÉtÉBÅ[ÉhÉoÉbÉNǝíÒãüǵÇýÇËǼǴÇÈÉ{É^ÉìǝçÏê¨ÇµÇ‹ÇÝÅB" & RETURN & RETURN & "#PushButton_ToggleActive ÉRÅ[ÉãǝÉrÉwÉCÉrÉAÇ‹ÇýÇÕÉXÉvÉâÉCÉgÇ…égópǵǃÅAÉrÉwÉCÉrÉAǝâ¬î\DžǵÇýÇËñŽå–DžǵÇýÇËǼǴNjÇÝÅB" & RETURN & RETURN & "ÇQǬÇÃÉÅÉbÉZÅ[ÉWÉVÉXÉeÉÄǙdžÇËÇ‹ÇÝ:" & RETURN & "1) ÅuÉvÉbÉVÉÖÉ{É^ÉìÅvÉrÉwÉCÉrÉAÇ™ÉAÉNÉeÉBÉuâªÇŽÇÍÇÈÇÐÇ´Ç…ÉJÉXÉ^ÉÄÉÅÉbÉZÅ[ÉWÇ™ÇÝÇ×ǃÇÃÉXÉvÉâÉCÉgÇ…ëóêMÇŽÇÍÇ‹ÇÝÅBDZÇÃÉÅÉbÉZÅ[ÉWÇÕÉÄÅ[ÉrÅ[ÉXÉNÉäÉvÉgÉnÉìÉhÉâÅAÇÝǐǃÇÃÉXÉvÉâÉCÉgÅAÇ‹ÇýÇÕactorListÇ…ëóÇÈDZÇÐǙǼǴNjÇÝÅB" & RETURN & RETURN & "2) ÉIÉuÉWÉFÉNÉgÇÕÉvÉbÉVÉÖÉ{É^Éì_ÉAÉNÉeÉBÉuâªÅA_â¬î\ÅA_ñŽå–ÉÅÉbÉZÅ[ÉWǝéÛÇØéÊÇÈÇýǁDžÅAÉrÉwÉCÉrÉAÇ…Åuê\ǵçûÇ€ÅvDZÇÐǙǼǴNjÇÝÅBÇQï¾å¸ÉÅÉbÉZÅ[ÉWÉVÉXÉeÉÄÇ…ÇÊǡǃÅAÉIÉuÉWÉFÉNÉgÇ™îjâÛÇŽÇÍÇÈëOÇ…ÉIÉuÉWÉFÉNÉgéQèÐǝÉNÉäÅ[ÉìÉAÉbÉvÇÝÇÈDZÇÐǙǼǴNjÇÝÅB" & RETURN & RETURN & "ÇÊÇËçÇÇ¢É`ÉÉÉìÉlÉãDždžÇÈÇÝÇ×ǃÇÃÉXÉvÉâÉCÉgÇ™ÇÝÇ×ǃÇÃÉ}ÉEÉXÉCÉxÉìÉgǝé’ífÇÝÇÈÇ©ÅAÇ‹ÇýÇÕí âÇŽÇþÇÈǩǝçlóðÇÝÇÈÇÊǧDžÅADZÇÃÉrÉwÉCÉrÉAǝê›íËǼǴNjÇÝÅBÉ}ÉEÉXÉCÉxÉìÉgÇ™í âÇ¼Ç´ÇÈèÍçáÅAǪÇÃêFǝïœçXÇÝÇÈÇýǁÇÃÉ{É^ÉìÇÃè„Ç…ÉuÉåÉìÉhÉXÉvÉâÉCÉgǝîzíuǼǴNjÇÝÅBÉ}ÉEÉXÉCÉxÉìÉgÇ™é’ífÇŽÇÍÇÈèÍçáÅAîºìßñæÇÃÉXÉvÉâÉCÉgÇ™É{É^ÉìǝñŽå–Ç…ÇÝÇÈÇýǁÇÃë„ÇÌÇËÇÃéËíiǝíÒãüǵNjÇÝÅB " & RETURN & RETURN & "óLå–ÉÅÉìÉoÅ[É^ÉCÉv" & RETURN & "[#bitmap, #filmLoop, #flash, #movie, #picture, #quickTimeMedia, #shape, #vectorShape]" & RETURN & RETURN & "ÉpÉâÉÅÅ[É^:" & RETURN & "* ïWèÄÉÅÉìÉoÅ[ÅiÉ}ÉEÉXÇ™ëºÇÃèÍèäDždžÇÈÇÐÇ´)" & RETURN & "* ÉçÅ[ÉãÉIÅ[ÉoÅ[ÉÅÉìÉoÅ[" & RETURN & "* É}ÉEÉXÉ_ÉEÉìÉÅÉìÉoÅ[" & RETURN & "* ñŽå–ÉÅÉìÉoÅ[" & RETURN & RETURN & "ÉIÉvÉVÉáÉìÉpÉâÉÅÅ[É^:" & RETURN & "* É}ÉEÉXÉ_ÉEÉìÉTÉEÉìÉh" & RETURN & "* É}ÉEÉXÉAÉbÉvÉTÉEÉìÉh" & RETURN & "ÉÅÉìÉoÅ[ǙDZÇÃèáî‘ǼÉLÉÉÉXÉgÇ…òAë±ìIÇ…îzíuÇŽÇÍÇÈèÍçáÅAÉfÉtÉHÉãÉgílǝÉ{É^ÉìçÏê¨ÇÃÇýǁDžégópǼǴNjÇÝÅB" & RETURN & RETURN & "* É{É^ÉìÇÃè„ÇÃÉXÉvÉâÉCÉgÇÕÉ}ÉEÉXÉCÉxÉìÉgǝí âÇŽÇþÇ‹ÇÝÇ©?" & RETURN & "* É}ÉEÉXÉAÉbÉvǼëóÇÁÇÍÇÈÉÅÉbÉZÅ[ÉWÇÃÉ^ÉCÉv: é¿çsÅbÇÝÇ×ǃÇÃÉXÉvÉâÉCÉgëóêMÅbactorListǝÉRÅ[ÉãÅbÉAÉNÉVÉáÉìǻǵ" & RETURN & "* É}ÉEÉXÉ{É^Éìǝó£ÇÝÇÐÇ´Ç…ï ÇÃÉXÉvÉâÉCÉgÇ…ëóêMÇŽÇÍÇýÉJÉXÉ^ÉÄÉÅÉbÉZÅ[ÉW" & RETURN & RETURN & "íç:" & RETURN & "[é¿çs]ǝégópǵÇýèÍçáÅAëóêMÇÝÇÈÉÅÉbÉZÅ[ÉWÇ…ïÑçáÇÝÇÈÉnÉìÉhÉâÇ™ÉÄÅ[ÉrÅ[ÉXÉNÉäÉvÉgDžǻǍǃÇÕÇ»ÇËÇ‹ÇþÇÒÅB" & RETURN & RETURN & "[ÉAÉNÉVÉáÉìǻǵ]ǝéwé¶ÇµÇýèÍçáÅADZÇÃÉrÉwÉCÉrÉAÇÕíPÇ…àŸÇ»Ç¡ÇýÉ{É^ÉìÇÃèÛë‘ǝàµÇ¢Ç‹ÇÝÅBǵǩǵÉ}ÉEÉXÉAÉbÉvǼà»âŠÇÃ2ǬÇÃÇ§ÇøÇÃÇ¢ÇÞÇÍÇ©ÇÃÉAÉNÉVÉáÉìǝé¿çsǼǴNjÇÝÅB" & RETURN & "(1)ìØÇðÉXÉvÉâÉCÉgÇ…É}ÉEÉXÉAÉbÉvÉnÉìÉhÉâÇÐã§Ç…ÉrÉwÉCÉrÉAǝí«â¡(ó·Ç¶ÇŒÅuÉWÉÉÉìÉvÉoÉbÉNÉ{É^ÉìÅvÉrÉwÉCÉrÉA)" & RETURN & "(2)ÉIÉuÉWÉFÉNÉgǝåªç›ÇÃÉrÉwÉCÉrÉAÇ…ó\ñÒÇÝÇÈÅBÉIÉuÉWÉFÉNÉgÇÕè]ǡǃÉJÉXÉ^ÉÄÉÅÉbÉZÅ[ÉWÉfÉBÉåÉNÉgÉäǝéÛÇØéÊÇËÇ‹ÇÝÅB"
- end
-
- on getBehaviorTooltip me
- return "ÉOÉâÉtÉBÉbÉNÉÅÉìÉoÅ[ÇÐïþópÅB" & RETURN & RETURN & "É}ÉEÉXÇÃèÛë‘Ç…è]ǡǃÉXÉvÉâÉCÉgÇÃÉÅÉìÉoÅ[ǝåäÝǵNjÇÝÅBDZÇÃÉ_ÉCÉiÉ~ÉbÉNÇ»É{É^ÉìÉrÉwÉCÉrÉAǝégópǵǃÅAÉ}ÉEÉXÉ_ÉEÉìÇ‚É}ÉEÉXÉAÉbÉvǼíZÇ¢ÉTÉEÉìÉhÇÃçƒêðÇ‚ÅAÉJÉXÉ^ÉÄÉÅÉbÉZÅ[ÉWÇÃëóêMÅAëºÇÃÉXÉvÉâÉCÉgÇÃÉAÉNÉVÉáÉìÇÃãNìÆÇ»Ç«Ç™çsǶNjÇÝÅBìØÇðÉXÉvÉâÉCÉgÇÃëºÇÃÉrÉwÉCÉrÉAÇ…ÇýǢǵǃÅAéãäoìIÇ»ÉtÉBÅ[ÉhÉoÉbÉNǝó^ǶÇÈÇýǁDžLJégópǼǴNjÇÝÅB(ó·Ç¶ÇŒÉ}Å[ÉJÅ[É{É^ÉìÇ…ÉWÉÉÉìÉv)ÅBDZÇÃÉrÉwÉCÉrÉAÇÕÇ‹ÇýÉJÉXÉ^ÉÄÉIÉuÉWÉFÉNÉgÇÐÉCÉìÉ^ÉâÉNÉgǼǴNjÇÝÅB"
- end
-
- on beginSprite me
- initialize(me)
- end
-
- on exitFrame me
- if myActiveFlag then
- CheckForRollover(me)
- end if
- end
-
- on endSprite me
- call(#PushButton_ClosingDown, mySubscribersList, me, spriteNum, myMessage)
- end
-
- on initialize me
- mySprite = sprite(me.spriteNum)
- myMember = mySprite.member
- repeat while the last char in myMessage = SPACE
- delete char -30000 of myMessage
- end repeat
- if not ["é¿çs", "ÉAÉNÉVÉáÉìǻǵ"].getPos(myMessageType) then
- if myMessage contains SPACE then
- ErrorAlert(me, #spaceInMessage, myMessage)
- else
- myMessage = symbol(myMessage)
- end if
- end if
- myActiveFlag = myActiveFlag = "égópâ¬"
- myXRayFlag = myXRayFlag = "ÇÝÇ×ǃÇÃÉ}ÉEÉXÉCÉxÉìÉgǝí â"
- myStandardMember = value(myStandardMember)
- myRollovermember = value(myRollovermember)
- myMouseDownMember = value(myMouseDownMember)
- myDisabledMember = value(myDisabledMember)
- myMouseDownSound = value(myMouseDownSound)
- myMouseUpSound = value(myMouseUpSound)
- if myActiveFlag then
- myMember = myStandardMember
- mySprite.member = myMember
- else
- myMember = myDisabledMember
- mySprite.member = myMember
- end if
- mySubscribersList = []
- sendAllSprites(#PushButton_OpenForBusiness, mySubscribersList, me, spriteNum, myMessage)
- end
-
- on CheckForRollover me
- mouseOverMe = rollover(spriteNum)
- if mouseOverMe then
- if not myXRayFlag then
- mouseOverMe = the mouseMember = myMember
- end if
- end if
- if myRollover = mouseOverMe then
- if theMouseWasUp = the mouseUp then
- exit
- else
- theMouseWasUp = the mouseUp
- if mouseOverMe then
- if the mouseUp then
- if myMouseDown then
- activate(me)
- else
- myMember = myRollovermember
- mySprite.member = myMember
- end if
- else
- clickOn(me)
- end if
- else
- if the mouseUp then
- if myMouseDown then
- Disactivate(me)
- end if
- end if
- end if
- end if
- else
- myRollover = mouseOverMe
- if myMouseDown then
- if myRollover then
- myMember = myMouseDownMember
- mySprite.member = myMember
- else
- myMember = myStandardMember
- mySprite.member = myMember
- end if
- else
- if not (the mouseDown) and myRollover then
- myMember = myRollovermember
- mySprite.member = myMember
- else
- myMember = myStandardMember
- mySprite.member = myMember
- end if
- end if
- end if
- end
-
- on clickOn me
- myMouseDown = 1
- myMember = myMouseDownMember
- mySprite.member = myMember
- if not voidp(myMouseDownSound) and (myMouseDownSound <> #none) then
- puppetSound(myMouseDownSound)
- end if
- updateStage()
- end
-
- on activate me
- myMouseDown = 0
- theMouseWasUp = 0
- myMember = myStandardMember
- mySprite.member = myMember
- if not voidp(myMouseUpSound) and (myMouseUpSound <> #none) then
- puppetSound(myMouseUpSound)
- end if
- updateStage()
- case myMessageType of
- "é¿çs":
- do(myMessage)
- "ÇÝÇ×ǃÇÃÉXÉvÉâÉCÉgǝëóêM":
- sendAllSprites(myMessage, me, spriteNum)
- "actorListǝÉRÅ[Éã":
- call(myMessage, the actorList, me, spriteNum)
- end case
- call(#PushButton_Activated, mySubscribersList, me, spriteNum, myMessage)
- end
-
- on Disactivate me
- myMouseDown = 0
- myMember = myStandardMember
- mySprite.member = myMember
- end
-
- on PushButton_ToggleActive me, trueOrFalse
- if voidp(trueOrFalse) then
- myActiveFlag = not myActiveFlag
- else
- case ilk(trueOrFalse) of
- #integer:
- myActiveFlag = trueOrFalse <> 0
- otherwise:
- return #invalidTypeError
- end case
- end if
- if myActiveFlag then
- myMember = myStandardMember
- mySprite.member = myMember
- call(#PushButton_Enabled, mySubscribersList, me, spriteNum, myMessage)
- else
- myMember = myDisabledMember
- mySprite.member = myMember
- call(#PushButton_Disabled, mySubscribersList, me, spriteNum, myMessage)
- end if
- end
-
- on PushButton_GetReference me, theList
- case ilk(theList) of
- #list:
- theList.append(me)
- #propList:
- theList.addProp(me.spriteNum, me)
- otherwise:
- return me
- end case
- return theList
- end
-
- on PushButton_Subscribe me, callingBehavior, theMessage
- if not voidp(theMessage) then
- if theMessage <> myMessage then
- exit
- end if
- end if
- if mySubscribersList.getPos(callingBehavior) then
- exit
- else
- if objectp(callingBehavior) then
- mySubscribersList.append(callingBehavior)
- return me
- end if
- end if
- end
-
- on PushButton_Unsubscribe me, callingBehavior
- mySubscribersList.deleteOne(callingBehavior)
- end
-
- on substituteStrings me, parentString, childStringList
- i = childStringList.count()
- repeat while i
- tempString = EMPTY
- dummyString = childStringList.getPropAt(i)
- replacement = childStringList[i]
- lengthAdjust = dummyString.char.count - 1
- repeat while 1
- position = offset(dummyString, parentString)
- if not position then
- parentString = tempString & parentString
- exit repeat
- next repeat
- end if
- if position <> 1 then
- tempString = tempString & parentString.char[1..position - 1]
- end if
- tempString = tempString & replacement
- delete me.char[1..position + lengthAdjust]
- end repeat
- i = i - 1
- end repeat
- return parentString
- end
-
- on ErrorAlert me, theError, data
- case theError of
- #spaceInMessage:
- if the runMode = "Author" then
- behaviorName = string(me)
- delete word 1 of behaviorName
- delete char -30001 of behaviorName
- delete char -30001 of behaviorName
- terror1 = "ÉrÉwÉCÉrÉAÉGÉâÅ[: ÉtÉåÅ[ÉÄ ^0ÅAÉXÉvÉâÉCÉg ^1"
- terror1 = substituteStrings(me, terror1, ["^0": the frame, "^1": the currentSpriteNum])
- terror2 = "ÉrÉwÉCÉrÉA ^0"
- terror2 = substituteStrings(me, terror2, ["^0": behaviorName])
- terror3 = "DZÇÃÉÅÉbÉZÅ[ÉWì‡Ç…ÉXÉyÅ[ÉXǙdžÇËÇ‹ÇÝÅB: ^0"
- terror3 = substituteStrings(me, terror3, ["^0": QUOTE & data & QUOTE])
- terror4 = "sendAllSprite ÉRÅ[ÉãǼÇÕç¼èâÇÃíPåÍÇæÇØégópÇŽÇÍÇ‹ÇÝÅB"
- alert(terror1 & RETURN & RETURN & terror2 & RETURN & RETURN & terror3 & RETURN & RETURN & terror4)
- end if
- end case
- end
-
- on isOKToAttach me, aSpriteType, aSpriteNum
- tisok = 0
- if aSpriteType = #graphic then
- if PermittedMemberTypes().getOne(sprite(aSpriteNum).member.type) > 0 then
- tisok = 1
- end if
- end if
- return tisok
- end
-
- on getPropertyDescriptionList me
- theMember = sprite(the currentSpriteNum).member
- memberType = theMember.type
- permittedTypes = PermittedMemberTypes(me)
- theMemberNum = theMember.number
- suitableMembersList = GetSuitableMembers(me, permittedTypes)
- descriptionList = [#myStandardMember: [#comment: "ÅÉÉOÉâÉtÉBÉbÉNÅÑ ÉXÉvÉâÉCÉgÇÃïWèÄÉÅÉìÉoÅ[", #format: #member, #range: suitableMembersList, #default: theMember], #myRollovermember: [#comment: "ÉçÅ[ÉãÉIÅ[ÉoÅ[ÉÅÉìÉoÅ[", #format: #member, #range: suitableMembersList, #default: member(theMemberNum + 1)], #myMouseDownMember: [#comment: "É}ÉEÉXÉ_ÉEÉìÉÅÉìÉoÅ[", #format: #member, #range: suitableMembersList, #default: member(theMemberNum + 2)], #myDisabledMember: [#comment: "ñŽå–ÉÅÉìÉoÅ[", #format: #member, #range: suitableMembersList, #default: member(theMemberNum + 3)]]
- soundsAvailable = GetSuitableMembers(me, [#sound])
- if soundsAvailable.count() then
- soundsAvailable.addAt(1, #none)
- descriptionList.addProp(#myMouseDownSound, [#comment: "ÅÉÉTÉEÉìÉhÅÑ É}ÉEÉXÉ_ÉEÉìǼçƒêðÇÝÇÈÉTÉEÉìÉh", #format: #sound, #range: soundsAvailable, #default: member(theMemberNum + 4)])
- descriptionList.addProp(#myMouseUpSound, [#comment: "É}ÉEÉXÉAÉbÉvǼçƒêðÇÝÇÈÉTÉEÉìÉh", #format: #sound, #range: soundsAvailable, #default: member(theMemberNum + 5)])
- end if
- descriptionList.addProp(#myActiveFlag, [#comment: "ÅÉëäå›çÏópÅÑ É{É^ÉìÇÕç¼èâ", #format: #string, #range: ["égópâ¬", "égópïsâ¬"], #default: "égópâ¬"])
- descriptionList.addProp(#myXRayFlag, [#comment: "É{É^Éìǝï¢Ç§ÉXÉvÉâÉCÉg", #format: #string, #range: ["ÇÝÇ×ǃÇÃÉ}ÉEÉXÉCÉxÉìÉgǝé’íf", "ÇÝÇ×ǃÇÃÉ}ÉEÉXÉCÉxÉìÉgǝí â"], #default: 0])
- descriptionList.addProp(#myMessageType, [#comment: "É}ÉEÉXÉAÉbÉvÇÃÉAÉNÉVÉáÉì", #format: #string, #range: ["é¿çs", "ÇÝÇ×ǃÇÃÉXÉvÉâÉCÉgǝëóêM", "actorListǝÉRÅ[Éã", "ÉAÉNÉVÉáÉìǻǵ"], #default: "sendAllSprites"])
- descriptionList.addProp(#myMessage, [#comment: EMPTY, #format: #string, #default: "ÉJÉXÉ^ÉÄÉÅÉbÉZÅ[ÉW"])
- return descriptionList
- end
-
- on GetSuitableMembers me, permittedTypes
- cursor(4)
- suitableMembersList = []
- maxCastLib = the number of castLibs
- repeat with theCastLib = 1 to maxCastLib
- maxMember = the number of castMembers of castLib theCastLib
- repeat with memberNumber = 1 to maxMember
- theMember = member(memberNumber, theCastLib)
- if permittedTypes.getPos(theMember.type) then
- if theMember.name = EMPTY then
- suitableMembersList.append(theMember)
- next repeat
- end if
- suitableMembersList.append(theMember.name)
- end if
- end repeat
- end repeat
- cursor(-1)
- return suitableMembersList
- end
-
- on PermittedMemberTypes me
- return [#bitmap, #filmLoop, #flash, #movie, #picture, #quickTimeMedia, #shape, #vectorShape]
- end
-